<?php
	session_start();
// This will connect us to our database...
include("../../funciones.php");
$conexion = conectaDB();
// The ext grid script will send  a task field which will specify what it wants to do
$task = '';
if ( isset($_POST['task'])){
  $task = $_POST['task'];
}
switch($task){
	case "LISTING_CITAS_CREADAS":
		getList_citas($conexion);
        break;
	case "LISTING_AGENDA":
		getList_agenda($conexion);
        break;
	case "LISTING_SERVICIOS_CONTRATADOS":
		getList_servicioscontratados($conexion);
        break;
	case "LISTING_PERSONAL":
		getList_personal($conexion);
        break;
	case "LISTING_SERVICIOS":
		getList_servicios($conexion);
        break;
    case "LISTING":
        getList($conexion);
        break;
	case "LISTADO_PRODUCTO":
		obtenerListadoproducto($conexion);
        break;
	case "LISTADO_TIPO_MOVIMIENTO":
		obtenerListadotipo_movimiento($conexion);
        break;
	case "LISTADO_TIPO_PROVEEDOR":
		obtenerListadoproveedor($conexion);
        break;	
	case "EDITAR_OBSERVACIONES":
        updateObservaciones($conexion);
        break;
    case "CREATE_CITA":
        createRow($conexion);
        break;
    case "CONCLUIR_SERVICIO":
        concluirServicio($conexion);
        break;
	case "CANCELAR_SERVICIO":
        cancelarServicio($conexion);
        break;
    case "SEARCH":
        searchRows($conexion);
        break;
    case "COMBO_SEARCH":
        searchcomboRows($conexion);
        break;
	case "LISTING_SERVICIOS_CONTRATADOS_ACTIVOS":
		getList_servicioscontratados_activos($conexion);
        break;
    default:
        echo "{failure:true}";
        break;
}
	
	function cancelarServicio($conexion)
	{
		$cns_cs =		$_POST['cns_cs'];
		$id_servicio =	$_POST['id_servicio'];
		
		if(testeo(mysql_query("BEGIN",$conexion),$conexion)){testerarchivo("checar.txt","Error en begin");return;}
			
			$query = "CALL cancelar_servicio($cns_cs,$id_servicio,@flag)";
			$result = mysql_query($query,$conexion);
			if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);return;}
				
		if(testeo(mysql_query("COMMIT",$conexion),$conexion)){testerarchivo("checar.txt","Error en commit");return;}
		echo 1;
	}
	
	function concluirServicio($conexion)
	{
		$cns_cs =		$_POST['cns_cs'];
		$id_servicio =	$_POST['id_servicio'];
		
		if(testeo(mysql_query("BEGIN",$conexion),$conexion)){testerarchivo("checar.txt","Error en begin");return;}
			
			$query = "CALL concluir_servicio($cns_cs,$id_servicio,@flag)";
			$result = mysql_query($query,$conexion);
			if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);return;}
		
			$query = "SELECT @flag";
			$result = mysql_query($query,$conexion);
			if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);return;}
			
			$rec = mysql_fetch_array($result);
			if($rec[0]==2)
			{
				echo 2;
				if(testeo(mysql_query("ROLLBACK",$conexion),$conexion)){testerarchivo("checar.txt","Error en commit");return;}
				return;
			}
		
		if(testeo(mysql_query("COMMIT",$conexion),$conexion)){testerarchivo("checar.txt","Error en commit");return;}
		echo 1;
	}	
	
	function getList_servicioscontratados_activos($conexion)
	{
		$Id_cliente =	$_POST['Id_cliente'];
		if($Id_cliente!='')
		{
			$query = "	SELECT tabla.nombre_estatus,tabla.Id_contratacion,tabla.Id_servicio,tabla.observaciones,MAX(ps.fecha) as fecha,tabla.cns_cs,tabla.nombre,tabla.restante_de_pago,tabla.pago_abono,tabla.pago_sugerido,tabla.precio,tabla.Id_estatus
						FROM
						(
							SELECT 	s.Id_servicio,
									c.Id_contratacion,
									cs.cns_cs,
									c.observaciones,
									s.nombre,
									cs.restante_de_pago,
									cs.pago_abono,
									cs.pago_abono as pago_sugerido,
									cs.precio,
									cs.Id_estatus,
									e.nombre as nombre_estatus
							FROM contratacion_servicio cs INNER JOIN
							contratacion c INNER JOIN  estatus e INNER JOIN servicio s
							ON
							(  e.Id_estatus=cs.Id_estatus AND c.Id_contratacion=cs.Id_contratacion AND cs.Id_cliente = $Id_cliente AND cs.Id_servicio=s.Id_servicio AND (cs.Id_estatus=3 OR cs.Id_estatus=6 OR cs.Id_estatus=7))
						) as tabla
						LEFT JOIN 
						pago_servicio ps 
						ON
							(
								tabla.Id_servicio=ps.Id_servicio AND
								tabla.cns_cs=ps.cns_cs
							)
						group by tabla.Id_servicio,tabla.cns_cs
						ORDER BY tabla.Id_servicio";
			
			$result = mysql_query($query,$conexion);
			$nbrows = mysql_num_rows($result);		
			
			if($nbrows>0){
				while($rec = mysql_fetch_array($result)){
					$arr[] = $rec;
				}
				$jsonresult = JEncode($arr);
				echo '({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
			} else {
				echo '({"total":"0", "results":""})';
			}
		}
	}
	
	function getList_servicioscontratados($conexion)
	{
		$Id_cliente =	$_POST['Id_cliente'];
		if($Id_cliente!='')
		{
			$query = "	SELECT 	s.Id_servicio,
								cs.cns_cs,
								s.nombre 
						FROM contratacion_servicio cs INNER JOIN servicio s ON (cs.Id_cliente = $Id_cliente AND cs.Id_servicio=s.Id_servicio AND Id_estatus=3)
						ORDER BY s.Id_servicio";
			$result = mysql_query($query,$conexion);
			$nbrows = mysql_num_rows($result);		
						
			if($nbrows>0){
				while($rec = mysql_fetch_array($result)){
					$arr[] = $rec;
				}
				$jsonresult = JEncode($arr);
				echo '({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
			} else {
				echo '({"total":"0", "results":""})';
			}
		}
	}
	
	function getList_citas($conexion)
	{
		$id_cliente =	$_POST['Id_cliente'];
		$id_servicio =	$_POST['Id_servicio'];
		$cns_cs =		$_POST['cns_cs'];
		
		if($id_cliente!='')
		{
			$query = "	SELECT 	c.Id_cita,
								c.fecha,
								c.hora_inicio,
								c.hora_fin,
								p.nombre 
						FROM cita c INNER JOIN personal p INNER JOIN contratacion_servicio cs INNER JOIN cita_cs ccs 
						ON (ccs.cns_cs=cs.cns_cs AND cs.cns_cs=$cns_cs AND ccs.Id_cita=c.Id_cita AND ccs.Id_servicio=cs.Id_servicio AND 
							cs.Id_servicio=$id_servicio AND cs.Id_cliente = $id_cliente AND c.Id_personal=p.Id_personal)
						ORDER BY c.Id_cita";
						
			$result = mysql_query($query,$conexion);
			$nbrows = mysql_num_rows($result);		
		
			if($nbrows>0){
				while($rec = mysql_fetch_array($result)){
					$arr[] = $rec;
				}
				$jsonresult = JEncode($arr);
				echo '({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
			} else {
				echo '({"total":"0", "results":""})';
			}
		}
	}
	
	function getList_agenda($conexion)
	{
		$id_personal=	$_POST['id_personal'];
		$fecha1		=	$_POST['fecha1'];
		$fecha2		=	$_POST['fecha2'];
		if($fecha1!="" && $fecha2!="")
		{
			$query = "	SELECT 	DISTINCT 
								c.Id_cita,
								c.hora_inicio,
								c.hora_fin,
								c.fecha,
								p.nombre,
								CONCAT(cl.nombre,' ',cl.ap_paterno,' ',cl.ap_materno) as nombre_cliente,
								s.nombre as nombre_servicio
						FROM cita c INNER JOIN personal p INNER JOIN cita_cs cc INNER JOIN contratacion_servicio cs INNER JOIN cliente cl INNER JOIN servicio s
						ON (	p.Id_personal=c.Id_personal AND 
								c.Id_cita=cc.Id_cita AND 
								cc.Id_servicio=cs.Id_servicio AND 
								cc.cns_cs=cs.cns_cs AND 
								cs.Id_cliente 	=cl.Id_cliente AND
								cc.Id_servicio = s.Id_servicio AND
								p.Id_personal=$id_personal AND
								c.fecha BETWEEN '$fecha1' AND '$fecha2')
						ORDER BY Id_cita";

			$result = mysql_query($query,$conexion);
			$nbrows = mysql_num_rows($result);
		
  
			if($nbrows>0){
				while($rec = mysql_fetch_array($result)){
					$arr[] = $rec;
				}
				$jsonresult = JEncode($arr);
				echo '({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
			} else {
				echo '({"total":"0", "results":""})';
			}
		}
		else
		{echo '({"total":"0", "results":""})';}
	}
	
	function getList_servicios($conexion) 
	{
		$query = "	SELECT 	cs.Id_cliente,CONCAT(cl.nombre,' ',cl.ap_paterno,' ',cl.ap_materno) as nombre,direccion,telefono,edad
					FROM contratacion_servicio cs INNER JOIN cliente cl ON(cs.Id_cliente=cl.Id_cliente " ;
					
		if(isset($_POST['nombre'])){$nombre=$_POST['nombre'];$query_=" AND (nombre LIKE '%".$nombre."%'";
															$query_.=" OR ap_paterno LIKE '%".$nombre."%'";
															$query_.=" OR ap_materno LIKE '%".$nombre."%')";$query.=$query_;}
		$query.= ") GROUP BY cs.Id_cliente";
		
		$result = mysql_query($query);
		$nbrows = mysql_num_rows($result);

		if($nbrows>0){
			while($rec = mysql_fetch_array($result)){
				$arr[] = $rec;
			}
			$jsonresult = JEncode($arr);
			echo '({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
		} else {
			echo '({"total":"0", "results":""})';
		}
	}
	
	
	function getList_personal($conexion) 
	{
		$query = "	SELECT Id_personal 	,
						nombre ,
						direccion ,
						telefono ,
						email,
						edad 
					FROM personal";
		if(isset($_POST['nombre'])){$nombre=$_POST['nombre'];$query_=" WHERE nombre LIKE '%".$nombre."%'";$query.=$query_;}
		$query.=" order by Id_personal";
		
		$result = mysql_query($query);
		$nbrows = mysql_num_rows($result);
		/*$start = (integer) (isset($_POST['start']) ? $_POST['start'] : $_GET['start']);
		$end = (integer) (isset($_POST['limit']) ? $_POST['limit'] : $_GET['limit']);
		$limit = $query." LIMIT ".$start.",".$end;    
		$result = mysql_query($limit);  */
  
		if($nbrows>0){
			while($rec = mysql_fetch_array($result)){
				$arr[] = $rec;
			}
			$jsonresult = JEncode($arr);
			echo '({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
		} else {
			echo '({"total":"0", "results":""})';
		}
	}
	
	function obtenerListadoproveedor($conexion)
	{
		$query = "	SELECT 	Id_equipo,
							nombre
					FROM equipo order by Id_equipo";
		$result = mysql_query($query);
		$nbrows = mysql_num_rows($result);
		/*$start = (integer) (isset($_POST['start']) ? $_POST['start'] : $_GET['start']);
		$end = (integer) (isset($_POST['limit']) ? $_POST['limit'] : $_GET['limit']);
		$limit = $query." LIMIT ".$start.",".$end;    
		$result = mysql_query($limit);  */
  
		if($nbrows>0){
			while($rec = mysql_fetch_array($result)){
				$arr[] = $rec;
			}
			$jsonresult = JEncode($arr);
			echo '({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
		} else {
			echo '({"total":"0", "results":""})';
		}
	}	
	
	function obtenerListadotipo_movimiento($conexion)
	{
		$query = "	SELECT 	Id_tm,
							nombre,
							descripcion,
							salida
					FROM tipo_movimiento 
					WHERE Id_estatus=3 order by Id_tm";
		$result = mysql_query($query);
		$nbrows = mysql_num_rows($result);
		/*$start = (integer) (isset($_POST['start']) ? $_POST['start'] : $_GET['start']);
		$end = (integer) (isset($_POST['limit']) ? $_POST['limit'] : $_GET['limit']);
		$limit = $query." LIMIT ".$start.",".$end;    
		$result = mysql_query($limit);  */
  
		if($nbrows>0){
			while($rec = mysql_fetch_array($result)){
				if($rec["salida"]==0)$rec["nombre"]="Entrada por ".$rec["nombre"];
				else $rec["nombre"]="Salida por ".$rec["nombre"];
				$arr[] = $rec;
			}
			$jsonresult = JEncode($arr);
			echo '({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
		} else {
			echo '({"total":"0", "results":""})';
		}
	}	

	function obtenerListadoproducto($conexion)
	{
		$query = "	SELECT 	Id_producto,
							nombre,
							descripcion,
							codigo_barras,
							existencia
					FROM producto order by Id_producto";
		$result = mysql_query($query);
		$nbrows = mysql_num_rows($result);
		/*$start = (integer) (isset($_POST['start']) ? $_POST['start'] : $_GET['start']);
		$end = (integer) (isset($_POST['limit']) ? $_POST['limit'] : $_GET['limit']);
		$limit = $query." LIMIT ".$start.",".$end;    
		$result = mysql_query($limit);  */
  
		if($nbrows>0){
			while($rec = mysql_fetch_array($result)){
				$arr[] = $rec;
			}
			$jsonresult = JEncode($arr);
			echo '({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
		} else {
			echo '({"total":"0", "results":""})';
		}
	}
	
	function updateObservaciones($conexion)
	{
		$id_contratacion = 		$_POST['id_contratacion'];
		$observaciones = 		$_POST['observaciones'];
		
		$result = mysql_query("BEGIN",$conexion);
		if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);return;}
		
		
			/*Actualizacion sencilla: La contratacion debe estar activa*/
			$query = "	UPDATE 	contratacion SET 	observaciones='$observaciones' WHERE Id_contratacion=$id_contratacion 
			AND 3 IN (SELECT Id_estatus FROM contratacion_servicio WHERE Id_contratacion=$id_contratacion)";
						
			$result = mysql_query($query,$conexion);
			if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);return;}
		
		$result = mysql_query("COMMIT",$conexion);
		if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);return;}
		echo 1;	
	}
	
	function getList($conexion) 
	{
		if($_POST['id_producto']!='')
		{
			$id_producto = 		$_POST['id_producto'];
			$query = "call	reporte_ficha_almacen($id_producto)";
			$result = mysql_query($query);
			$query = "select * from ficha_almacen ORDER BY cns";
			$result = mysql_query($query);
			$nbrows = mysql_num_rows($result);
			/*$start = (integer) (isset($_POST['start']) ? $_POST['start'] : $_GET['start']);
			$end = (integer) (isset($_POST['limit']) ? $_POST['limit'] : $_GET['limit']);
			$limit = $query." LIMIT ".$start.",".$end;    
			$result = mysql_query($limit);  */
  
			if($nbrows>0){
				while($rec = mysql_fetch_array($result)){
					$arr[] = $rec;
				}
				$jsonresult = JEncode($arr);
				echo '({"total":"'.$nbrows.'","results":'.$jsonresult.'})';
			} else {
				echo '({"total":"0", "results":""})';
			}
		}
		else
		{echo '({"total":"0", "results":""})';}		
	}

	
	function createRow($conexion)
	{
		$id_personal = 			$_POST['Id_personal'];
		$id_servicio = 			$_POST['Id_servicio'];
		$cns_cs = 				$_POST['cns_cs'];
		$fecha = 				$_POST['fecha'];
		$hora_inicia = 			$_POST['hora_inicia'];
		$hora_fin = 			$_POST['hora_fin'];
		$id_equipo = 			$_POST['Id_equipo'];
				
		if (version_compare(PHP_VERSION,"5.2","<"))
		{
			require_once("../../JSON.php"); //if php<5.2 need JSON class
			$json = new Services_JSON($conexion);
			$Id_servicio_arraypress = $json->decode(stripslashes($id_servicio));
			$cns_cs_arraypress = $json->decode(stripslashes($cns_cs));
		}
		else
		{
			$Id_servicio_arraypress = json_decode(stripslashes($id_servicio));
			$cns_cs_arraypress = json_decode(stripslashes($cns_cs));
		}
		/******			*****/
		if(sizeof($Id_servicio_arraypress)<1)
		{
			echo '0';
			return;
		}
		if($id_equipo==''){$id_equipo=-1;}
		$result = mysql_query("BEGIN",$conexion);
		if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);return;}
		
			/*Insercion sencilla*/
			$query = "call entrada_cita($id_personal,'$fecha','$hora_inicia','$hora_fin',$id_equipo,@y)";
			
			$result = mysql_query($query,$conexion);
			if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);return;}
			
			$query = "SELECT @y as id_cita;";
			$result=mysql_query($query,$conexion);
			if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);return;}
			$rec = mysql_fetch_array($result);
			$id_cita=$rec['id_cita'];
			
			if($id_cita==-1){mysql_query("ROLLBACK",$conexion);echo 2;exit(0);}
			
			if(sizeof($Id_servicio_arraypress)==1 && $result!=NULL)
			{
				$query = "CALL insertar_cita($id_cita,$cns_cs_arraypress[0],$Id_servicio_arraypress[0],@y);";
				$result = mysql_query($query,$conexion);
				if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);return;}
				$result = mysql_query("SELECT @y as resultado",$conexion);
				$rec = mysql_fetch_array($result);
				if($rec['resultado']!=1)
				{
					$query = "ROLLBACK;";
					$result=mysql_query($query,$conexion);
					echo 3;exit(0);
				}
				
			}
			else
			{
				for($i = 0; $i < sizeof($Id_servicio_arraypress) && $result!=NULL; $i++)
				{
					$query = "CALL insertar_cita($id_cita,$cns_cs_arraypress[$i],$Id_servicio_arraypress[$i],@y);";
					$result = mysql_query($query,$conexion);
					if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);return;}
					$result = mysql_query("SELECT @y as resultado",$conexion);
					$rec = mysql_fetch_array($result);
					if($rec['resultado']!=1)
					{
						$query = "ROLLBACK;";
						$result=mysql_query($query,$conexion);
						echo 3;exit(0);
					}
				}
			}
		
		$result = mysql_query("COMMIT",$conexion);
		if(testeo($result,$conexion)){testerarchivo("checar.txt",$query);return;}
		echo 1;
	}
	
	// Encodes a SQL array into a JSON formated string
	function JEncode($arr)
	{
		if (version_compare(PHP_VERSION,"5.2","<"))
		{    
			require_once("../../JSON.php"); //if php<5.2 need JSON class
			$json = new Services_JSON($conexion);//instantiate new json object
			$data=$json->encode($arr);  //encode the data in json format
		} else
		{
			$data = json_encode($arr);  //encode the data in json format
		}
		return $data;
	}

	// Encodes a YYYY-MM-DD into a MM-DD-YYYY string
	function codeDate ($date) 
	{
		$tab = explode ("-", $date);
		$r = $tab[1]."/".$tab[2]."/".$tab[0];
		return $r;
	}
	
	function testeo($resultado,$conn)
	{
		/*si suscede un error*/
		if($resultado==NULL)
		{
			$query = "ROLLBACK;";
			$result=mysql_query($query,$conn);
			return 1;
		}
		return 0;
	}
	
	function testerarchivo($nombrefile,$cadena)
	{
		$referencia=fopen($nombrefile,"w");		
		fwrite($referencia,$cadena);
		fclose($referencia);
	}
?> 